/*
*
* Copyright (c) 2011 Vaulting Systems International
* 
* Permission is hereby granted, free of charge, to any person obtaining a copy 
* of this software and associated documentation files (the "Software"), to deal 
* in the Software without restriction, including without limitation the rights 
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 
* of the Software, and to permit persons to whom the Software is furnished to do  
* so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all  
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE  
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*/
package com.ekeyman.securesavelib.dao;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.ekeyman.securesavelib.domain.User;

public class UserDaoImpl extends HibernateDaoSupport implements UserDao{

	public UserDaoImpl(){}
	
	public void saveUser(User user){

		getHibernateTemplate().saveOrUpdate(user);
	}

	@SuppressWarnings("unchecked")
	public User getUser(String openidurl){
		
		User user = null;
		
		String queryString = "from User u where u.openidurl = :openidurl " +
			"and u.disabled = 0";
		
		String[] paramNames = new String[1];
		paramNames[0] = "openidurl";
		
		Object[] values = new Object[1];
		values[0] = openidurl.toUpperCase();
		
		List<User> users = getHibernateTemplate().findByNamedParam(queryString, paramNames, values);
		
		if(users != null && !users.isEmpty()){
			user = users.get(0);
		}
		
		return user;
	
	}
	
	public void deleteUser(String openidurl){
		User user = getUser(openidurl);
		if(user != null){
			user.setDisabled(1);
			saveUser(user);
		}
	}

}
